package cn.school.course.entity;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.school.common.utils.SysUserUtils;
import cn.school.course.vo.CourseRspVo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description 课程
 * @Author fangjin.tao
 * @Date 2023-01-04
 */

@TableName("t_course")
@Data
public class Course implements Serializable {
	
	
	private static final long serialVersionUID = -8724660634982029878L;
	private Long id;
	
	/**
	 * 排课计划ID
	 */
	private Long coplId;
	
	/**
	 * 科目ID
	 */
	private Long subjId;
	
	/**
	 * 班级ID
	 */
	private Long scclId;
	
	/**
	 * 节次ID
	 */
	private Long coseId;
	
	/**
	 * 老师ID
	 */
	private Long syusId;
	
	/**
	 * 教室ID
	 */
	private Long bsloId;
	
	/**
	 * 课程星期数
	 */
	private Integer coplWeekDayNo;
	
	/**
	 * 课程周次
	 */
	private Integer coplWeekNo;
	
	/**
	 * 课程冲突ID
	 */
	private Long cocoId;
	
	/**
	 * 排课计划冲突ID
	 */
	private Long cpcoId;
	
	/** 学年学期ID */
	private Long tetiId;
	
	/**
	 * 课程冲突类型：teacher-老师分身冲突; classRoom-场地空间占用冲突; teacAndRoom-老师分身冲 and 场地空间占用都冲突
	 */
	@TableField(exist = false)
	private String cpcoConflictType;
	
	/**
	 * 单节课开始时间
	 */
	private Date courBeginTime;
	
	/**
	 * 单节课结束时间
	 */
	private Date courEndTime;
	
	/**
	 * 科目名称
	 */
	private String subjName;
	
	/**
	 * 班级名称
	 */
	private String scclName;
	
	/**
	 * 节次编号
	 */
	private String coseCode;
	
	/**
	 * 老师名称
	 */
	private String syusName;
	
	/**
	 * 教室名称
	 */
	private String bsloName;
	
	/**
	 * 备注
	 */
	private String remarks;
	
	/**
	 * 创建时间
	 */
	private Date createTime;
	
	/**
	 * 修改时间
	 */
	private Date modifyTime;
	/**
	 * 默认租户为当前登录人的租户
	 */
	private String tenantId = SysUserUtils.getSysUser().getTenantId();
	
	public void transfer(CourseRspVo tempCourseRspVo) {
		tempCourseRspVo.setId(this.getId());
		tempCourseRspVo.setClaName(this.scclName);
		tempCourseRspVo.setCourseName(this.subjName);
		tempCourseRspVo.setClaDate(DateUtil.format(this.getCourBeginTime(), "yyyy-MM-dd"));
		tempCourseRspVo.setWeekDay(this.coplWeekDayNo.toString());
		tempCourseRspVo.setStartTime(DateUtil.format(this.courBeginTime, "yyyy-MM-dd HH:mm:ss"));
		tempCourseRspVo.setEndTime(DateUtil.format(this.courEndTime, "yyyy-MM-dd HH:mm:ss"));
		tempCourseRspVo.setStaffName(this.syusName);
		tempCourseRspVo.setBsloId(this.bsloId.toString());
		tempCourseRspVo.setBsloName(this.bsloName);
		tempCourseRspVo.setCoplId(this.coplId.toString());
		tempCourseRspVo.setSubjId(this.subjId.toString());
		tempCourseRspVo.setScclId(this.scclId.toString());
		tempCourseRspVo.setCoseId(this.coseId.toString());
		tempCourseRspVo.setSyusId(this.syusId.toString());
		tempCourseRspVo.setBsloId(this.bsloId.toString());
		//tempCourseRspVo.setClaColor(); // 颜色
		if (StrUtil.isNotEmpty(this.cpcoConflictType)) {
			tempCourseRspVo.setCpcoConflictType(this.cpcoConflictType);
			tempCourseRspVo.setClaTimeStatus("1"); //冲突状态
		}
	}
}
